package com.kb.design.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kb.design.config.ListIntegerTypeHandler;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 项目表(DesignProject)实体类
 *
 * @author makejava
 * @since 2024-01-17 15:31:33
 */
@Data
public class DesignProjectDTO implements Serializable {
    private static final long serialVersionUID = 668765187503200583L;
    /**
     * 查询条件
     */
    private String responsiblePersonList ;
    private String checkPersonList ;
    private String noLeader ;
    private String roleKey ;
    private String dataPermissions ;
    private Integer  page = 1;
    private Integer perPage = 10;
    private String valorLeader;
    private String designLeader;

    /**
     * 客户联系人信息
     */
    private String customerContact;
    private String customerPhone;
    private String customerEmail;

    /**
     * 项目名称
     */
    private String projectName;
    private String type;
    private String tabType;
    private String projectNumber;
    /**
     * 负责人
     */
    private String responsiblePersonId;
    private String responsiblePersonName;
    /**
     * 识别是否点击保存
     * 1.保存  2.启动
     */
    private String operationType;

    /**
     * 订单id
     */
    private Long orderId;
    private Integer deptId;
    private String orderNo;
//    private Long encapsulationId;
    private Long projectId;
    private Long id;
    /**
     * 版本
     */
    private Integer version;
    private List<String> userCodeList;

    private String status;
    private String updateStatus;
    private String remark;
    private String designStatus;
    /**
     * 加工文件
     */
    private String processingDocument;
    /**
     * 创建人
     */
    private Date createTime;
    
    private String createBy;
    private String createByName;
    /**
     * 更新人
     */
    private Date updateTime;

    private String updateBy;
    /**
     * 封装主管
     */
    private String packageCompetent;
    /**
     * 设计主管
     */
    private String designCompetent;
    //项目截止时间
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate projectEndDate;

    private BigDecimal pinAmount;
    private Integer layers;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;

    private String customerCode;
    private String customerName;
    /**
     * 设计区域
     */
    private String designArea;
    /**
     * 封装区域
     */
    private String packageArea;
    /**
     * 类型
     * 已下单 有订单数据绑定
     * 未下单 没有订单数据绑定
     */
    private String projectType;
    /**
     * 布线完成率
     */
    private Integer completionRate;
    private String designSoftware;
    private String salesArea;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date loadingPlateTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date warehousingTime;

    private Integer pageDepartments;
    private Integer designDepartments;
    private String salesCode;

    private String designRemark;
    private String baseUrl;
    private Integer termination;
    private String nodeResponsiblePersonName;
    private String engineeringUrl;
    private String described;
    /**
     * 是否需要封装  0 不需要 1 需要
     */
    private String isPage;

}

